home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt32e2.arc / README.V32 < prev   
Encoding:
Text File  |  1985-11-30  |  23.2 KB  |  623 lines

  1. INTRODUCTION TO PIBTERM v3.2
  2. ============================
  3.  
  4. The archive files PIBT32E1.ARC, PIBT32E2.ARC, and PIBT32E3.ARC
  5. contain a program called PibTerm which provides a terminal emulation
  6. and host communications facility.
  7.  
  8. This is version 3.2.5 of Pibterm, released November 30, 1985.
  9. This version represents a minor code correction for PibTerm
  10. version 3.0, released October 7, 1985.
  11.  
  12. RECENT RELEASE HISTORY
  13. ======================
  14.  
  15. Release 3.0:   Released October 7, 1985.
  16. Release 3.2:   Released November 8, 1985.
  17. Release 3.2.1: Fixed bug in CAPTURE script command.
  18. Release 3.2.2: Fixed bugs in Ascii upload.
  19. Release 3.2.3: Fixed handling of color intensities in ANSI/BBS mode.
  20. Release 3.2.4: Fixed handling of redial in script.
  21. Release 3.2.5: Added G and L functions in dialing directory.
  22.  
  23. FEATURES OF PIBTERM
  24. ===================
  25.  
  26. Features of PibTerm version 3.2 include:
  27.  
  28.    1.  Several different terminal emulation methods:
  29.  
  30.           -- DEC VT52
  31.           -- DEC VT100 (large subset)
  32.           -- BBS ANSI  (ANSI.SYS color graphics and music)
  33.           -- Dumb glass TTY
  34.           -- Dumb glass TTY in split-screen mode
  35.  
  36.    2.  The ability to act as a host program (mini BBS).
  37.  
  38.    3.  Ring buffered, interrupt driven, serial I/O.
  39.  
  40.    4.  A number of popular file transfer methods:
  41.  
  42.           -- Xmodem Checksum and CRC
  43.           -- Modem7 batch with either Checksum or Crc
  44.           -- Ymodem batch or single file
  45.           -- Telink
  46.           -- Kermit
  47.           -- CompuServe "B" Protocol
  48.           -- Ascii with XON/XOFF
  49.           -- Autodownload Xmodem for Bob Mahoney's EXEC PC BBS.
  50.  
  51.    5.  Telephone dialing directory.
  52.  
  53.    6.  Session logging/capture to printer and/or disk.
  54.  
  55.    7.  On-screen editing (block mode) for use with mainframes.
  56.  
  57.    8.  Menu-driven commands.
  58.  
  59.    9.  Macro-key definition, with sufficient capability to
  60.        provide auto-logon scripts.
  61.  
  62.   10.  Escapes to the operating system (and return from DOS)
  63.        within a PibTerm session.
  64.  
  65.   11.  Built-in file and directory manipulation, including
  66.        directory display, file display, file copying, file erasure.
  67.  
  68.   12.  Screen dumps to a file.
  69.  
  70.   13.  Customizable modem support.
  71.  
  72.   14.  Automatic change of baud rate to the proper one with
  73.        smart modems like the Hayes 1200 and USR Courier.
  74.  
  75.   15.  Built-in phone area code directory.
  76.  
  77.   16.  Review buffer for lines scrolled off top of screen.
  78.  
  79.   17.  Easy alteration of program parameters to customize to
  80.        a particular system.
  81.  
  82.   18.  Extensive script facility for automating communications chores.
  83.  
  84. Version 3.2 also fixes a number of problems from earlier versions
  85. of PibTerm.
  86.  
  87. These archive libraries were created using ARC450.EXE.  I assume that if you
  88. are reading this file, then you have the proper version of ARC!
  89.  
  90.  
  91. CONTENTS
  92. ========
  93.  
  94. Archive file PIBT32E1.ARC
  95. -------------------------
  96.  
  97. This archive should contain 2 files, as follows:
  98.  
  99.      PIBTERM.COM   (Executable files and overlays for PibTerm)
  100.      PIBTERM.000
  101.  
  102. Archive file PIBT32E2.ARC
  103. -------------------------
  104.  
  105. This archive should contain 9 files, as follows:
  106.  
  107.      PIBTERM.001
  108.      PIBTERM.002
  109.      PIBTERM.003   (More PibTerm overlays)
  110.      PIBTERM.004
  111.      PIBTERM.005
  112.      PIBTERM.006
  113.      PIBTERM.007
  114.      PIBTERM.008
  115.  
  116.      README.V32    (What you're reading now)
  117.  
  118. Archive file PIBT32E3.ARC
  119. -------------------------
  120.  
  121. This archive should contain 8 files, as follows:
  122.  
  123.      PIBTERM.FON   (Sample dialing directory)
  124.      PIBTERM.PRE   (Empty dialing prefix file)
  125.      PIBBW.CNF     (Configuration for monochrome monitor)
  126.      PIBCOLOR.CNF  (Configuration for color monitor)
  127.  
  128.      VT100.FNC     (Key definitions for VT100 keypad keys)
  129.      CDCNOS.FNC    (Key definitions for VT100 under CDC NOS)
  130.  
  131.      STRIPHI.TRA   (Translate table to strip parity bit)
  132.  
  133.      PIBTERM3.DOC  (Printable documentation for PibTerm)
  134.  
  135. CHECKING ARCHIVE'S INTEGRITY
  136. ============================
  137.  
  138. After downloading PIBT32E1.ARC, PIBT32E2.ARC, and PIBT32E3.ARC,
  139. it's a good idea to verify the integrity of those files using the
  140. integrity check feature of ARC450.  To perform the check, enter:
  141.  
  142.      ARC450 T PIBT32E1.ARC
  143.      ARC450 T PIBT32E2.ARC
  144.      ARC450 T PIBT32E3.ARC
  145.  
  146. If the archives pass the integrity check, then you can proceed
  147. to extract the files as shown below.  If an archive is bad, you
  148. can either try downloading it again (although the file may be
  149. bad on the BBS you called), or write me for the source + executables
  150. disks as described below.
  151.  
  152.  
  153. DOCUMENTATION
  154. =============
  155.  
  156. Full documentation for PibTerm v3.0 is found in file PIBTERM3.DOC in
  157. PIBT32E3.ARC.  This documentation also applies to version 3.2.
  158. The changes incorporated in version 3.2 are documented in the addendum below.
  159.  
  160.  
  161. USING PIBTERM
  162. =============
  163.  
  164. To execute PibTerm, extract the files all files from the archive
  165. files using the commands:
  166.  
  167.    ARC450 E PIBT32E1.ARC *.*
  168.    ARC450 E PIBT32E2.ARC *.*
  169.    ARC450 E PIBT32E3.ARC *.*
  170.  
  171. Make sure all the files reside in the same directory.
  172. If you have a color monitor and color graphics card, rename the
  173. file PIBCOLOR.CNF to PIBTERM.CNF.  If you have a monochrome
  174. monitor, rename the file PIBBW.CNF to PIBTERM.CNF.
  175.  
  176. Enter PIBTERM in response to the DOS prompt, and away you go!
  177.  
  178. To find out how to execute PibTerm from a different directory,
  179. see pages 6 and 7 of the documentation file PIBTERM3.DOC.
  180.  
  181.  
  182. SOURCE CODE FOR PIBTERM
  183. =======================
  184.  
  185. The source code for Pibterm comprises 35000+ lines of Turbo Pascal.
  186. You may be able to find the source archive files PIBT3SP1.ARC
  187. through PIBT3SP4.ARC (for version 3.0) on the same BBS from which
  188. you obtained this executable version.  If not, then you may get the
  189. source by sending $12 to:
  190.  
  191.               Philip R. Burns
  192.               Vogelback Computing Center
  193.               Northwestern University
  194.               2129 Sheridan Road
  195.               Evanston, IL.  60201
  196.  
  197. The $12 is a media, mailing, and handling cost, not a program charge.
  198. You will receive two disks with the complete source of the latest version
  199. (currently 3.2) of PibTerm in ARC format, as well as the corresponding
  200. executables.
  201.  
  202.  
  203. RESTRICTIONS ON USE
  204. ===================
  205.  
  206. You may also make unlimited copies of the program and distribute these
  207. copies as you desire, except that I, Philip R. Burns, reserve the sole right
  208. to distribute the program for profit.  You may request a duplication
  209. charge, not to exceed $10 per copy for the complete executables archive.
  210. My original intent was that PibTerm should be used only for academic,
  211. educational, and personal hobby use.  If you want to use PibTerm in a
  212. commercial environment, then you may do so, but I request that you send
  213. me a one-time donation of $25 per copy.  This donation is ONLY for commercial
  214. use;  I DO NOT want any money from you for the executable copy unless
  215. you are using PibTerm in a commercial environment.  Note that this donation
  216. is separate from the fee for obtaining the source code noted below.
  217.  
  218. You may use the source code and modify it as you please for
  219. NON-COMMERCIAL APPLICATIONS ONLY.  You may NOT use the code in
  220. developing commercial applications without my permission.
  221.  
  222. I encourage you to extend this program and add interesting
  223. new features.  I also encourage you to upload these changes to
  224. your local BBSs in order to share your work with others.  What I
  225. do NOT want is for you to rip off this code as if it were yours
  226. and sell it for a profit.  That's not nice.
  227.  
  228. You should distribute the program without any changes you have made,
  229. and then a SEPARATE version with any changes you've made.
  230. You should clearly mark the changes in some sort of documentation file,
  231. as well as in the source files you change.  I also suggest that you
  232. add a line to the initial output of PibTerm indicating your name and
  233. the date of your modification.
  234.  
  235.  
  236. THE GD= PARAMETER
  237. =================
  238.  
  239. I left out one important piece of information in the documentation.
  240. The configuration parameter GD= specifies the number of hours that
  241. local time lags Greenwich mean time.  This information is used to
  242. adjust the universal time dates received during Ymodem transfers.
  243. For example, Chicago generally lags Greenwich mean time by six hours.
  244.  
  245.  
  246. ADDRESSES FOR ELECTRONIC LETTER BOMBS
  247. =====================================
  248.  
  249. You may leave me messages on the following BBSs:
  250.  
  251.       Gene Plantz's BBS (312) 882 4145
  252.       Ron Fox's BBS     (312) 940 6496
  253.  
  254. Gene's board is registration only ($15 a year) but well worth it.
  255. Ron's board is essentially open, and also worth calling.
  256.  
  257. Thanks,
  258. Phil Burns
  259. November, 1985
  260.  
  261. ================================
  262. ADDENDUM FOR PIBTERM VERSION 3.2
  263. ================================
  264.  
  265. Since the initial release of PibTerm version 3.0, a number of
  266. problems have been reported.  All of these problems are fixed in
  267. release 3.2 which is actually what you will find contained in these
  268. archive files.  Among the problems fixed are:
  269.  
  270.    (1)  PibTerm writes directly to screen memory, making it
  271.         difficult to use under multitasking systems.
  272.  
  273.         Solution:  Beginning with version 3.2 of PibTerm, you can
  274.                    request that PibTerm NOT write directly to
  275.                    screen memory.
  276.  
  277.                    Go to the Alt-P menu, request n) miscellaneous,
  278.                    then g) write directly to screen memory, and
  279.                    answer N to the question.  PibTerm will then
  280.                    use ordinary BIOS writes.  This slows down
  281.                    PibTerm considerably, so use it only when you
  282.                    really have to.  The most common reason for
  283.                    not having PibTerm write to the screen is so
  284.                    that PibTerm will execute gracefully under a
  285.                    multitasking executive.  I have tried PibTerm
  286.                    under DoubleDos from SoftLogic and it works
  287.                    properly;  others have reported some problems
  288.                    with other multitasking programs.  Please let
  289.                    me know about these problems so that I can
  290.                    incorporate corrective code in future releases
  291.                    (or you can do it for me!).
  292.  
  293.    (2)  Script commands are only executed when characters are
  294.         received from the remote host.
  295.  
  296.         Solution:  Fixed in version 3.2 -- script commands are
  297.                    checked regardless of whether characters
  298.                    arrive from the remote system or not.
  299.  
  300.    (3)  The script commands TRANSLATE and KEY don't work.
  301.  
  302.         Solution:  They work in version 3.2.
  303.  
  304.    (4)  <TIMEOUT> appears consistently on very fast CPU speed
  305.         machines, e.g., 8 to 10Mhz AT clones.
  306.  
  307.         Solution:  Should be fixed in version 3.2; but may still
  308.                    be a problem for some machines.  (There is
  309.                    no problem for ordinary PCs and clones.)  See
  310.                    also (25) below on RTS/CTS checking.
  311.  
  312.    (5)  Prefixes for dialing in scripts cause PibTerm to croak;
  313.         e.g.,   DIAL "-22" causes PibTerm to die.
  314.  
  315.         Solution:  Fixed in version 3.2.
  316.  
  317.    (6)  PibTerm doesn't allow postfix characters in dialing.
  318.  
  319.         Solution:  Version 3.2 allows you to use the dialing
  320.                    prefix characters as postfix characters.
  321.                    For example,  at the dialing prompt, -22+
  322.                    adds the "-" prefix string to the front of
  323.                    directory entry, and adds the "+" string
  324.                    to the end of the directory entry.
  325.  
  326.    (7)  Host mode allows null names through.
  327.  
  328.         Solution:  Null names are not allowed in version 3.2.
  329.  
  330.    (8)  Host mode messages have the first character truncated.
  331.  
  332.         Solution:  Fixed in version 3.2.
  333.  
  334.    (9)  There is no menu entry for the GD= parameter.
  335.  
  336.         Solution:  There is now -- see Alt-P, n) miscellaneous,
  337.                    f) Greenwich time lag.
  338.  
  339.    (10) The foreground color in BBS/ANSI mode always starts out
  340.         at light grey.
  341.  
  342.         Solution:  This was intentional, but so many people
  343.                    have complained, that I have changed BBS/ANSI
  344.                    to respond to the same colors as are set up
  345.                    for VT100 mode.
  346.  
  347.    (11) Changing communications parameters for Xmodem transfers causes
  348.         some modems to drop carrier.
  349.  
  350.         Solution:  In version 3.2, the parameters are only changed
  351.                    when they have to be.  Version 3.0 always did
  352.                    the change.
  353.  
  354.    (12) The Alt-F directory listing always displays all files in the
  355.         directory.
  356.  
  357.         Solution:  In version 3.2 you are prompted for a wildcard
  358.                    for the files to be displayed.
  359.  
  360.    (13) Xmodem family file transfers caused machine lockups,
  361.         especially with the Telink protocol.
  362.  
  363.         Solution:  This is partly avoided in version 3.2 by not resetting
  364.                    the port when it isn't necessary (i.e., same as
  365.                    fix for #11 above).
  366.  
  367.                    The rest of the problem concerned a bad use of
  368.                    a pointer variable.  Version 3.2 corrects this
  369.                    as well.
  370.  
  371.    (14) The file STRIPHI.TRA mentioned in the documentation is
  372.         missing.
  373.  
  374.         Solution:  It is now present in PIBT32E2.ARC.
  375.  
  376.    (15) Overlay files for PibTerm could be overwritten by a
  377.         batch mode transfer.
  378.  
  379.         Solution:  Version 3.2 does not allow the uploading of
  380.                    ANY file whose name begins with the characters
  381.                    'PIBTERM'.
  382.  
  383.    (16) Files create using the C)opy file facility of the
  384.         Alt-F file manipulation menu were read-only.
  385.  
  386.         Solution:  Fixed in version 3.2.  You can use the
  387.                    public domain program ALTER.COM to change
  388.                    the copy's attributes for those files
  389.                    created using version 3.0.
  390.  
  391.    (17) The dialing prefix disappeared during redials.
  392.  
  393.         Solution:  Fixed in version 3.2.
  394.  
  395.    (18) Ascii uploads/downloads ignored ctrl-z end-of-file
  396.         markers.
  397.  
  398.         Solution:  This is an option in version 3.2.  It is useful
  399.                    for ascii transfers between micros, but probably
  400.                    not useful for most mainframes where the Ctrl-Z
  401.                    is not an end-of-file marker.
  402.  
  403.    (19) Ascii transfers don't display the text of lines sent/received.
  404.  
  405.         Solution:  This is an option in version 3.2.
  406.  
  407.    (20) The previous screen contents are lost when executing a
  408.         jump to DOS using Alt-J.
  409.  
  410.         Solution:  Version 3.2 restores the previous screen contents
  411.                    after returning from DOS.
  412.  
  413.    (21) Redialing for a manually-entered number displays an
  414.         incorrect name for the system being dialed.
  415.  
  416.         Solution:  Fixed in version 3.2.
  417.  
  418.    (22) The default transfer protocol was always that specified in
  419.         the PIBTERM.CNF file unless explicitly overriden by the
  420.         "Alt-P j) file transfer protocol" menu selection.
  421.  
  422.         Solution:  The default download protocol is changed in version 3.2
  423.                    each time a new protocol is chosen with either the Alt-R
  424.                    or Alt-S commands.  This makes it easier to use the
  425.                    same transfer protocol for a number of transfers in
  426.                    succession without having to explicitly choose a
  427.                    different (non-default) protocol each time.
  428.  
  429.    (23) Several people asked for an alternative capture mode in which
  430.         the observed screen image, after editing backspaces, deletes,
  431.         tabs, and so on, would be captured rather than the
  432.         unedited character stream received from the remote system.
  433.  
  434.         Solution:  To accomodate this, PibTerm v3.2 will ask you
  435.                    if you want an unedited capture (like in v3.0) or
  436.                    an edited capture when you hit alt-O to request
  437.                    a capture.  The edited capture saves the edited
  438.                    screen image of each line rather than the unedited
  439.                    character stream from the remote system.
  440.  
  441.                    In Script mode, the CAPTURE command now has the
  442.                    format:
  443.  
  444.                       CAPTURE "file name" "capture type"
  445.  
  446.                    where "file name" is the file to capture to,
  447.                    and "capture type" is either "E" for an edited
  448.                    capture or "U" for an unedited capture.  Both
  449.                    the file name and capture type must be enclosed
  450.                    in quotes.
  451.  
  452.         IMPORTANT: If you are using a multitasking system, DO NOT
  453.                    REQUEST EDITED CAPTURE unless PibTerm in running
  454.                    in the foreground.  Otherwise you may get the
  455.                    screen characters from some other program in
  456.                    the capture file.
  457.  
  458.    (24) A new script command KEYDEF provides for defining a function
  459.         key string without reading in a function key definition file.
  460.         The syntax of KEYDEF is:
  461.  
  462.            KEYDEF keyname "definition"
  463.  
  464.         where  keyname  is the name of the key to be defined
  465.         (F1-F10,S1-S10,C1-C10,A1-A10) and "definition" is
  466.         the key definition to be used.
  467.  
  468.    (25)  RTS/CTS checking caused problems on some machines
  469.          (i.e., continuous timeouts or lockups).
  470.  
  471.          Solution:  Version 3.2 allows you to specify if
  472.                     RTS/CTS checking is to be done.
  473.  
  474.    (26)  The baud-rate adjustment when dialing a system with
  475.          a modem like the USR Courier sometimes failed and
  476.          resulted in strange baud rates being set.
  477.  
  478.          Solution:  Fixed in v3.2 (I hope).
  479.  
  480.    (27)  Some people complained that the file transfer windows
  481.          covered information on the underlying screen which they
  482.          might want to see.
  483.  
  484.          Solution:  In version 3.2, you can toggle the status display
  485.                     for Xmodem family file transfers on and off
  486.                     by hitting Alt-1.  Any error causes the status
  487.                     display to reappear.  Also, the display
  488.                     reappears at the end of the transfer.
  489.  
  490.                     Note that Alt-1 does NOT work for Ascii
  491.                     transfers, and does not yet work for Kermit.
  492.  
  493.                     Avoid hitting Alt-1 when you have told PibTerm
  494.                     not to write directly to the screen.  Updating
  495.                     the entire screen takes enough time that you may
  496.                     introduce timeout errors.
  497.  
  498.                     Also note that, with a batch transfer, the window
  499.                     for the current file disappears, but the underlying
  500.                     batch file list does NOT disappear.
  501.  
  502.    (28)  Ascii file transfers sometimes locked up while displaying
  503.          the "transfer complete" message.
  504.  
  505.          Solution:  Fixed in version 3.2.
  506.  
  507.    (29)  IF conditions for local or remote strings sometimes
  508.          failed to propagate properly in nested structures.
  509.  
  510.          Solution:  Fixed in version 3.2.
  511.  
  512.    (30)  There was no way to halt an Ascii upload to host mode
  513.          from the remote system.
  514.  
  515.          Solution:  Version 3.2 waits for a Ctrl-Z.
  516.  
  517.    (31)  The built-in BBS/ANSI driver did not properly display
  518.          intensified and blinking characters.
  519.  
  520.          Solution:  Fixed in v3.2.3.
  521.  
  522.    (32)  The redial command asks for keyboard input in script
  523.          mode, making it difficult to write scripts for
  524.          unattended mode operation.
  525.  
  526.          Solution:  Fixed in version 3.2.4.
  527.  
  528.    (33)  Version 3.2.5 add two facilities to the dialing directory:
  529.  
  530.             (a)  G  allows direct access to a given page of
  531.                  the dialing directory.  For example, entering
  532.                     G3
  533.                  takes you to the page with entries 31 through 45.
  534.  
  535.             (b)  L  allows you to enter a list of numbers to be
  536.                  dialed in sequence.  Up to ten numbers may be
  537.                  so designated.  The numbers are dialed in a
  538.                  round-robin sequence until a connection is made
  539.                  or a dialing attempt is terminated by your hitting
  540.                  the ESC key.  Prefixes, postfixes, and manual dials
  541.                  may all be requested, in addition to directory entry
  542.                  numbers.
  543.  
  544. My thanks to all those who pointed out these problems and made
  545. suggestions for improvements.
  546.  
  547. PibTerm v3.2.5 was released November 30, 1985.
  548.  
  549.  
  550. SOME COMMON PROBLEMS
  551. ====================
  552.  
  553. Two questions cropped up repeatedly concerning version 3.0:
  554.  
  555.    Question:  PibTerm won't dial a number; instead it displays
  556.               a message to the effect that a session is already
  557.               in progress.  How do I get PibTerm to dial???
  558.  
  559.    Answer:    Your modem is set so that the carrier detect line
  560.               is ALWAYS high, indicating an online session,
  561.               even when NO session is current.  You can fix this
  562.               problem in two ways:
  563.                  (1)  Reset your modem so that the carrier detect
  564.                       is NORMAL, i.e., only is high if a session
  565.                       genuinely is in progress.
  566.                  (2)  Hit Alt-P for the main configuration menu,
  567.                       hit  i) modem setup, then hit  n) carrier line high,
  568.                       and answer Y to the question about carrier
  569.                       detect always being high.
  570.  
  571.    Question:  PibTerm won't talk to my modem -- I keep getting
  572.               <TIMEOUT> messages.
  573.  
  574.    Answer:    Your modem or cable doesn't allow for RTS/DSR/CTS line
  575.               monitoring.  Either get a decent modem and cable (!)
  576.               or go the main PibTerm menu with Alt-P, choose
  577.               n) miscellaneous, then choose h) and i) and answer N
  578.               to the questions about Dataset Ready and Clear To Send
  579.               monitoring.
  580.  
  581.  
  582. NOTES FOR THE FUTURE
  583. ====================
  584.  
  585. I plan on releasing a version 4.0 of PibTerm sometime around next
  586. February.  I hope to include SOME of the following features:
  587.  
  588.    (1)  Modem setups by brand name (i.e., just say "USRCOURIER"
  589.         and all the modem-related variables are properly
  590.         initialized).  To that end I solicit command lists for
  591.         whatever modems you are using.
  592.  
  593.    (2)  A "learning" mode for script files, so that PibTerm
  594.         can build a script file from an actual session,
  595.         easing the construction of auto-logon scripts.
  596.  
  597.    (3)  Emulators for Televideo and Dec VT220 terminals.  I'd
  598.         like to add a graphics terminal as well, but that will
  599.         be MUCH more difficult.
  600.  
  601.    (4)  Nested scripts, and a number of extended script facilities,
  602.         including named variables, CASE statements, more complex
  603.         expressions for conditional testing, and so on.
  604.  
  605.    (5)  A few host-mode improvements.
  606.  
  607.    (6)  File transfer facilities to take advantage of those modems
  608.         which have built-in error checking like the MultiTech and
  609.         ARK modems.
  610.  
  611.    (7)  Kermit improvements, including repeat counts, and whichever
  612.         of the sliding window or larger packet proposals wins out.
  613.  
  614.    (8)  Improved VT100 emulation.
  615.  
  616.    (9)  X.PC protocol.
  617.  
  618.   (10)  You tell me!
  619.  
  620. Suggestions are always welcome.  Code that implements those suggestions
  621. is even MORE welcome.
  622.  
  623.